11 research outputs found

    Dynamically detecting and tolerating IF-Condition Data Races

    Full text link
    An IF-Condition Invariance Violation (ICIV) occurs when, after a thread has computed the control expression of an IF statement and while it is executing the THEN or ELSE clauses, another thread updates variables in the IF’s control expression. An ICIV can be easily detected, and is likely to be a sign of a concurrency bug in the code. Typically, the ICIV is caused by a data race, which we call IF-Condition Data Race (ICR). In this paper, we analyze the data races reported in the bug databases of popular software systems and show that ICRs occur relatively often. Then, we present two techniques to handle ICRs dynamically. They rely on simple code transformations and, in one case, additional hardware help. One of them (SW-IF) detects the races, while the other (HW-IF) detects and prevents them. We evaluate SW-IF and HW-IF using a variety of applica-tions. We show that these new techniques are effective at finding new data race bugs and run with low overhead. Specifically, HW-IF finds 5 new (unreported) race bugs and SW-IF finds 3 of them. In addition, 8-threaded executions of SPLASH-2 codes show that, on average, SW-IF adds 2 % execution overhead, while HW-IF adds less than 1%. 1

    GJB2 mutation spectrum in 2063 Chinese patients with nonsyndromic hearing impairment

    Get PDF
    Background: Mutations in GJB2 are the most common molecular defects responsible for autosomal recessive nonsyndromic hearing impairment (NSHI). The mutation spectra of this gene vary among different ethnic groups. Methods: In order to understand the spectrum and frequency of GJB2 mutations in the Chinese population, the coding region of the GJB2 gene from 2063 unrelated patients with NSHI was PCR amplified and sequenced. Results: A total of 23 pathogenic mutations were identified. Among them, five (p.W3X, c.99delT, c.155_c.158delTCTG, c.512_c.513insAACG, and p.Y152X) are novel. Three hundred and seven patients carry two confirmed pathogenic mutations, including 178 homozygotes and 129 compound heterozygotes. One hundred twenty five patients carry only one mutant allele. Thus, GJB2 mutations account for 17.9% of the mutant alleles in 2063 NSHI patients. Overall, 92.6% (684/739) of the pathogenic mutations are frame-shift truncation or nonsense mutations. The four prevalent mutations; c.235delC, c.299_c.300delAT, c.176_c.191del16, and c.35delG, account for 88.0% of all mutantalleles identified. The frequency of GJB2 mutations (alleles) varies from 4% to 30.4% among different regions of China. It also varies among different sub-ethnic groups. Conclusion: In some regions of China, testing of the three most common mutations can identify at least one GJB2 mutant allele in all patients. In other regions such as Tibet, the three most common mutations account for only 16% the GJB2 mutant alleles. Thus, in this region, sequencing of GJB2 would be recommended. In addition, the etiology of more than 80% of the mutant alleles for NSHI in China remains to be identified. Analysis of other NSHI related genes will be necessary

    Tolerating asymmetric data races with minimal hardware support

    Get PDF
    Data races are a common type of concurrency bug in parallel programs. An important type of race that has not received much attention is Asymmetric data races. In these races, the state of well tested, correct threads is corrupted by racing threads from external, typically third-party code. Current schemes to detect and tolerate these races are software based, and have substantial execution overhead. This thesis proposes the first scheme to detect and tolerate asymmetric data races in hardware. The approach, called Pacman, induces negligible execution overhead and requires minimal hardware modifications. In addition, compared to past software-based schemes, Pacman eliminates deadlock cases. Pacman is based on using hardware address signatures to detect the asymmetric races. Processor, cache coherence, and protocol messages remain unchanged. We evaluate Pacman for all the SPLASH2 and PARSEC applications. Our results show that Pacman is effective and has minimal overhead. i

    Techniques to detect and avert advanced software concurrency bugs

    Get PDF
    Multicore machines have become pervasive and, as a result, parallel programming has received renewed interest. Unfortunately, writing correct parallel programs is notoriously hard. One challenging problem is how to ship correct programs. Dynamic analysis tools are very useful to find errors in parallel programs by automatically analyzing the runtime information. They often capture errors from well-tested programs. However, existing dynamic analysis tools suffer from two problems: high false positive rate and high overhead. High false positive rate means lots of errors reported by the dynamic analysis tool may be benign or non-existent. For example, lots of data races detected by a race detection tool could be relatively benign data races. Also, many dynamic software analyses cause orders-ofmagnitude slowdowns, which users cannot tolerate at runtime. This dissertation contains three parts. The first two parts propose two different schemes to reduce the false positives and overhead of race detecting tools. These two schemes can detect and tolerate two different types of harmful races with low overhead: asymmetric data races and IF-condition data races. An asymmetric data race occurs when at least one of the racing threads is inside a critical section. Our proposal to detect and tolerate asymmetric data races is called Pacman. It exploits cache coherence hardware to temporarily protect the variables that a thread accesses in a critical section from other threads’s requests. An IF-condition data race is one where a memory location accessed by a thread (T1) in the control expression of an IF statement suffers a race while T1 is executing the THEN or ELSE clauses. T1 may or may not access again the location in the THEN or ELSE clauses. Our second proposal presents two techniques to handle IF-condition races dynamically. They rely on simple code transformations and, in one case, on additional hardware help. The third part proposes a general hardware framework to provide fine-grained memory monitoring with low overhead. This mechanism can be used to reduce the overhead of many dynamic software analyses. Overall, this dissertation aims at designing novel schemes to reduce the false positive rate and overhead of dynamic software analyses in order to make parallel programs more robust

    SigRace: Signaturebased data race detection

    No full text
    Detecting data races in parallel programs is important for both software development and production-run diagnosis. Recently, there have been several proposals for hardware-assisted data race detection. Such proposals typically modify the L1 cache and cache coherence protocol messages, and largely lose their capability when lines get displaced or invalidated from the cache. To avoid these shortcomings, this paper proposes a novel approach to hardwareassisted data race detection. The approach, called SigRace, relies on hardware address signatures. As a processor runs, the addresses of the data that it accesses are automatically encoded in signatures. At certain times, the signatures are automatically passed to a hardware module that intersects them with those of other processors. If the intersection is not null, a data race may have occurred. This paper presents the architecture of SigRace, an implementation, and its software interface. With SigRace, caches and coherence protocol messages are unmodi�ed. Moreover, cache lines can be displaced and invalidated with no effect. Our experiments show that SigRace is signi�cantly more effective than a state-ofthe-art conventional hardware-assisted race detector. SigRace �nds on average 29 % more static races and 107 % more dynamic races. Moreover, if we inject data races, SigRace �nds 150 % more static races than the conventional scheme

    Characterization of Ceramic Thermal Shock Cracks Based on the Multifractal Spectrum

    No full text
    Ceramics are commonly used as high-temperature structural materials which are easy to fracture because of the propagation of thermal shock cracks. Characterizing and controlling crack propagation are significant for the improvement of the thermal shock resistance of ceramics. However, observing crack morphology, based on macro and SEM images, costs much time and potentially includes subjective factors. In addition, complex cracks cannot be counted and will be simplified or omitted. Fractals are suitable to describe complex and inhomogeneous structures, and the multifractal spectrum describes this complexity and heterogeneity in more detail. This paper proposes a crack characterization method based on the multifractal spectrum. After thermal shocks, the multifractal spectrum of alumina ceramics was obtained, and the crack fractal features were extracted. Then, a deep learning method was employed to extract features and automatically classify ceramic crack materials with different strengths, with a recognition accuracy of 87.5%

    A Lightweight System for Detecting and Tolerating Concurrency Bugs

    No full text

    SigRace

    No full text
    corecore